package com.demo.jzoffer2;

import org.junit.Test;

import java.util.Arrays;

/**
 * @author gy
 * @date 2022/11/15
 */
public class Test1228_02 {

    /**
     * 输入整数数组 arr ，找出其中最小的 k 个数。
     * 例如，输入4、5、1、6、2、7、3、8这8个数字，则最小的4个数字是1、2、3、4。
     *
     * 输入：arr = [3,2,1], k = 2
     * 输出：[1,2] 或者 [2,1]
     *
     * 输入：arr = [0,1,2,1], k = 1
     * 输出：[0]
     * @param arr
     * @param k
     * @return
     */
    public int[] getLeastNumbers(int[] arr, int k) {
        int[] newArr = new int[k];
        Arrays.sort(arr);
        for (int i = 0; i < k; i++) {
            newArr[i] = arr[i];
        }
        return newArr;
    }


    @Test
    public void m1() {
        Integer[] arrs = {1,2,5,3,0};
//        Arrays.sort(arrs, new Comparator<Integer>() {
//            @Override
//            public int compare(Integer a, Integer b) {
////                return a - b;
//                return b - a;
//            }
//        });

        Arrays.sort(arrs, (a,b) -> a - b);
        System.out.println(Arrays.toString(arrs));

    }

    @Test
    public void m2(){
        int[] arrs = {1,2,5,3,0};
        int[] leastNumbers = this.getLeastNumbers(arrs, 2);
        System.out.println(Arrays.toString(leastNumbers));
    }

}
